package com.yyw.foodie.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yyw.foodie.bo.cart.ShopCartBo;
import com.yyw.foodie.pojo.ItemsEntity;
import com.yyw.foodie.utils.PagedGridResult;
import com.yyw.foodie.vo.ItemsDetailsVo;

import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * <p>
 * 商品表 商品信息相关表：分类表，商品图片表，商品规格表，商品参数表 服务类
 * </p>
 *
 * @author yiyw
 * @since 2021-05-22
 */
public interface ItemsService extends IService<ItemsEntity> {

    /**
     * 获取商品详情页所需要的信息
     * 包括商品信息、图片、规格等等
     * @param itemId    商品ID
     * @return
     */
    ItemsDetailsVo getItemsInfo(String itemId) throws ExecutionException, InterruptedException;

    /**
     * 首页商品搜索
     * @param keyWords  关键字
     * @param sort      排序规则 价格-p   销量-c    默认-k
     * @param page      当前页
     * @param pageSize  条数
     * @return
     */
    PagedGridResult itemsPage(String keyWords, String sort, Integer page, Integer pageSize);

    /**
     * 首页侧边导航栏三级分类点击搜索商品
     * @param catId 三级分类ID
     * @param sort  排序规则 同上个方法
     * @param page  当前页
     * @param pageSize  条数
     * @return
     */
    PagedGridResult itemsPageByCategory(String catId, String sort, Integer page, Integer pageSize);

    /**
     * 查询购物车里最新的商品信息
     * @param skuIds    skuId
     * @return
     */
    List<ShopCartBo> getItemsByCart(String[] skuIds);
}
